As computing applications have moved increasingly toward a “cloud service” computing model, distributed computing architectures have been developed to meet the performance requirements of servers at the cloud service datacenter. One such architecture physically or logically separates the computation domain and the storage domain. Another architecture uses distributed replicated storage, where a host server replicates its data to remote servers, often in diverse geographic locations. The replicated storage at remote servers may provide, for example, better throughput to nearby geographic locations or better failure isolation, since distant localities are less likely to be affected by the same events such as power or network outages.
With these new architectures, many high-performance servers in the datacenter either locally cache, or store a copy of the data in a distributed storage system or, in the case of a centralized storage system, locally cache the remotely-stored persistent data. Such caching is performed in order to improve data access performance. When an application using the cloud service needs to update the data being used from a local cache or store, challenges can arise due to data transfer latencies between the layers of a distributed architecture.